主题
清空日志 Skin - LogClearSkins
函数简介
清空全部已注册的全局日志 Skin。清空后所有用户 Skin 位失效;各 logger 的 LogSetTarget 中残留的 Skin 位会被静默忽略,不再触发回调。
接口名称
LogClearSkinsDLL调用
c
int32_t LogClearSkins(int64_t instance);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
示例
注销全部已注册 Skin。流程:注册若干 Skin → 使用 → LogClearSkins。
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int skinA = ola.LogRegisterSkin((int64_t)(void*)&OnUiLog, 0);
int skinB = ola.LogRegisterSkin((int64_t)(void*)&OnNetLog, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();
if (ret != 1) {
return;
}csharp
using System;
using OLAPlug;
var ola = new OLAPlugServer();
// skinA/skinB 来自 LogRegisterSkin
int skinA = 0, skinB = 0;
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
skin_a = ola.LogRegisterSkin(callback_addr_a, 0)
skin_b = ola.LogRegisterSkin(callback_addr_b, 0)
ola.LogSetTarget(0, 1 | skin_a | skin_b)
ola.LogInfo('multi skin')
ret = ola.LogClearSkins()java
import com.olaplug.OLAPlugServer;
OLAPlugServer ola = new OLAPlugServer();
int skinA = ola.LogRegisterSkin(cbA, 0);
int skinB = ola.LogRegisterSkin(cbB, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();go
import "github.com/ola/olaplug/olaplug"
ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
skinA := ola.LogRegisterSkin(cbA, 0)
skinB := ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1|skinA|skinB)
ola.LogInfo("multi skin")
ret := ola.LogClearSkins()rust
use olaplug::OLAPlugServer;
let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let skin_a = ola.log_register_skin(cb_a, 0);
let skin_b = ola.log_register_skin(cb_b, 0);
ola.log_set_target(0, 1 | skin_a | skin_b);
ola.log_info("multi skin");
let ret = ola.log_clear_skins();
if ret != 1 {
return;
}cpp
var ola = com("OlaPlug.OlaSoft")
var skinA = ola.LogRegisterSkin(cbA, 0)
var skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1 | skinA | skinB)
ola.LogInfo("multi skin")
var ret = ola.LogClearSkins()vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
skinA = ola.LogRegisterSkin(cbA, 0)
skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget 0, 1
ola.LogInfo "multi skin"
ret = ola.LogClearSkins()text
.局部变量 ola, OLAPlug
.局部变量 ret, 整数型
ola.Create ()
.局部变量 skinA, 整数型
.局部变量 skinB, 整数型
skinA = ola.LogRegisterSkin (cbA, 0)
skinB = ola.LogRegisterSkin (cbB, 0)
ola.LogSetTarget (0, 位或 (1, 位或 (skinA, skinB)))
ola.LogInfo (“multi skin”)
ret = ola.LogClearSkins ()aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var skinA = ola.LogRegisterSkin(cbA, 0);
var skinB = ola.LogRegisterSkin(cbB, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
var ret = ola.LogClearSkins();text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
整数 skinA = ola.LogRegisterSkin(cbA, 0)
整数 skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1 位或 skinA 位或 skinB)
ola.LogInfo("multi skin")
整数 ret = ola.LogClearSkins()cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int skinA = ola.LogRegisterSkin((int64_t)(void*)&OnUiLog, 0);
int skinB = ola.LogRegisterSkin((int64_t)(void*)&OnNetLog, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int32_t ret = ola.LogClearSkins();原生 DLL 调用
cpp
long instance = CreateCOLAPlugInterFace();
long logger = 0;
// LogRegisterSkin ...; LogSetTarget(...);
int ret = LogClearSkins(instance);csharp
using System.Runtime.InteropServices;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogClearSkins(long ola);
long instance = CreateCOLAPlugInterFace();
long logger = 0;
int ret = LogClearSkins(instance);python
from ctypes import CDLL, c_int, c_int64
ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
logger = 0
ret = ola.LogClearSkins(instance)返回值
| 返回值 | 说明 |
|---|---|
1 | 成功。 |
0 | 失败。 |
注意事项
| 项目 | 说明 |
|---|---|
| 作用域 | 仅清空全局 Skin 注册表,不销毁 logger 实例。 |
| 测试清理 | 单元测试 / 用例结束时建议调用,避免 Skin 互相污染。 |
相关接口
| 接口 | 说明 |
|---|---|
| LogRegisterSkin | 注册。 |
| LogUnregisterSkin | 注销单个。 |
| OLALogSkinCallback | 回调类型。 |
